/**
 * 索引签名语法
 * { [key: keyType]: valueType }
 * keyType 只能是 string | boolean | symbol | 模板字面量
 * valueType 可以任意类型
 */

/**
 * 使用 该语法 定义一个 普通对象类型。key 是 string
 */
interface IObject {
  [key: string]: any;
}

/**
 * 使用 ts 提供的 Record 工具类型 定义一个对象
 * Record内部 type Record<K extends string | number | symbol, T> = { [P in K]: T; }
 */
const obj: Record<string, string> = {
  name: "chen",
  // age: 10,
};

function calculateSalary(salaryObject: Record<string, number>) {
  let total = 0;
  for (const name in salaryObject) {
    const value = salaryObject[name];
    total += salaryObject[name];
  }
  return total;
}

export {};
